package com.zdsoft.finance.project.entity;

import com.zdsoft.framework.core.common.domain.BaseEntity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Lob;
import javax.persistence.Table;
import java.math.BigDecimal;

/**
 * 项目域对象
 *
 * @author LiaoGuoWei
 * @create 2016-10-18 15:13
 **/
@Entity
@Table(name = "ZDS_PROJECT")
public class Project extends BaseEntity {

       /**
        *
        */
       private static final long serialVersionUID = -8681054082073405555L;

       /**
        * 客户ID
        */
       @Column(length = 32)
       private String clientId;

       /**
        * 客户编号
        */
       @Column(length = 32)
       private String clientCd;

       /**
        * 客户名称
        */
       @Column(length = 255)
       private String clientName;

       /**
        * 项目案号
        */
       @Column(length = 255)
       private String projectCode;

       /**
        * 项目名称
        */
       @Column(length = 255)
       private String projectNm;

       /**
        * 申请金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal amount;

       /**
        * 申请期限
        */
       @Column(length = 11)
       private Integer applyDeadline;

       /**
        * 申请期限单位
        */
       @Column(length = 32)
       private String applyDeadlineUnit;

       /**
        * 申请费率
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal applyRate;

       /**
        * 申请费率单位
        */
       @Column(length = 255)
       private String applyRateUnit;

       /**
        * 业务品种编号
        */
       @Column(length = 32)
       private String businessTypeCd;

       /**
        * 业务品种名称
        */
       @Column(length = 32)
       private String businessTypeNm;

       /**
        * 检索名
        */
       @Column(length = 255)
       private String searchKey;


       /**
        * 资金用途描述
        */
       @Lob
       private String capitalUseFor;
       /**
        * 拟保证措施
        */
       @Lob
       private String quasiGuarMeasures;

       /**
        * 项目来源
        */
       @Column(length = 255)
       private String projectSource;

       /**
        * 项目概述
        */
       @Lob
       private String projectDesc;

       /**
        * 备注
        */
       @Lob
       private String remark;

       /**
        * 具体申请类型(类名)
        */
       @Column(length = 255)
       private String specificType;

       /**
        * 具体申请ID
        */
       @Column(length = 32)
       private String specificCd;

       /**
        * 申请时间
        */
       @Column(length = 16)
       private Long applyDateTime;

       /**
        * 受理人编号
        */
       @Column(length = 32)
       private String acceptEmpCd;
       /**
        * 受理人ID
        */
       @Column(length = 32)
       private String acceptEmpCdId;
       /**
        * 受理人姓名
        */
       @Column(length = 255)
       private String acceptEmpNm;

       /**
        * 授信Id
        */
       @Column(length = 32)
       private String creditId;

       /**
        * 当前项目金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal currentAmount;

       /**
        * 当前项目金额期限
        */
       @Column(length = 11)
       private Integer currentDeadline;

       /**
        * 当前项目期限单位
        */
       @Column(length = 32)
       private String currentDeadlineUnit;

       /**
        * 当前项目利率
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal currentRate;


       /**
        * 业务性质
        */
       @Column(length = 32)
       private String busiProperty;

       /**
        * 项目所属公司
        */
       @Column(length = 32)
       private String companyId;

       /**
        * 合作机构
        */
       @Column(length = 32)
       private String loanOrganizationId;

       /**
        * 操作机构ID
        */
       @Column(length = 32)
       private String operateOrgId;

       /**
        * 已代偿金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal compFreeAmount;

       /**
        * 已签合同金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal contractAmount;

       /**
        * 合同结束日期
        */
       @Column(length = 16)
       private Long contractEDate;

       /**
        * 合同开始日期
        */
       @Column(length = 16)
       private Long contractSDate;

       /**
        * 已核销金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal destAmount;

       /**
        * 在保余额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal insuranceBalance;

       /**
        * 是否可发起担保函
        */
       @Column(length = 1)
       private Integer isFormalApply;

       /**
        * 是否可已发起意向函
        */
       @Column(length = 1)
       private Integer isIntentApply;

       /**
        * 总放款金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal loanTotalAmount;

       /**
        * 已正常解保
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal normalFreeAmount;

       /**
        * 已追回金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal recoverAmount;

       /**
        * 过会金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal reviewAmount;

       /**
        * 过会期限
        */
       @Column(length = 16)
       private Long reviewDeadline;

       /**
        * 过会期限单位
        */
       @Column(length = 64)
       private String reviewDeadlineUnit;

       /**
        * 项目等级
        */
       @Column(length = 32)
       private String projectLevel;



       /**
        * 放款结束时间
        */
       @Column(length = 16)
       private Long loanEndDate;

       /**
        * 放款开始时间
        */
       @Column(length = 16)
       private Long loanStartDate;

       /**
        * 业务类型
        */
       @Column(length = 32)
       private String businessNature;


       /**
        * 项目是否算尾
        */
       @Column(length = 1)
       private Integer interestType;

       /**
        * 项目期限内是否算尾
        */
       @Column(length = 1)
       private Integer isTailType;

       /**
        * 还款方式
        */
       @Column(length = 50)
       private String repayMethod;

       /**
        * 每期还款日
        */
       @Column(length = 2)
       private Integer repaymentDt;

       /**
        * 每期还款日方式
        */
       @Column(length = 32)
       private String selectFixRepaymentDt;

       /**
        * 最近一次决议变更Id
        */
       @Column(length = 32)
       private String decisionsChangeId;

       /**
        * 是否发生决议变更
        */
       @Column(length = 1)
       private Integer hasDecisionsChange;


       /**
        * 进入在保时间
        */
       @Column(length = 16)
       private Long inInsuranceDateTime;

       /**
        * 过会利率
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal reviewRate;

       /**
        * 已使用担保函金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal formalApplyAmount;

       /**
        * 已使用意向函金额
        */
       @Column(precision = 15, scale = 6)
       private BigDecimal intentApplyAmount;

       /**
        * 决议通过时间
        */
       @Column(length = 16)
       private Long accrThroughDateTime;
       /**
        * 业务编号
        */
       @Column(length = 32)
       private String busiCd;
       /**
        * 项目状态
        */
       @Column(length = 2)
       private Integer status;

       /**
        * 项目阶段编号
        */
       @Column(length = 32)
       private String stageCd;

       /**
        * 结束时间
        */
       @Column
       private Long endTime;

       /**
        * 项目库存状态 状态：在库 1；已出库 2；无效 -1；
        */
       @Column(length = 2)
       private Integer storeStatus;

       /**
        * 入库时间
        */
       @Column
       private Long storeInTime;

       /**
        * 最近次出库时间
        */
       @Column
       private Long lastStoreOutTime;

       /**
        * 清除（失效）时间
        */
       @Column
       private Long cleanStoreTime;

       /**
        * 项目所属部门ID
        */
       @Column(length = 32)
       private String belongOrgId;

       /**
        * 所属业务部门/公司编号
        */
       @Column(length = 32)
       private String belongOrgCd;

       /**
        * 所属业务部门/公司名称
        */
       @Column(length = 255)
       private String belongOrgNm;


       /**
        * 客户快照版本
        */
       @Column(length = 32)
       private String clientVersion;

       /**
        * 经办部门编号
        */
       private String handlingDepartmentCd;
       /**
        * 经办部门名称
        */
       private String handlingDepartmentNm;

       public String getProjectDesc() {
              return projectDesc;
       }

       public void setProjectDesc(String projectDesc) {
              this.projectDesc = projectDesc;
       }

       public String getClientId() {
              return clientId;
       }

       public void setClientId(String clientId) {
              this.clientId = clientId;
       }

       public String getClientCd() {
              return clientCd;
       }

       public void setClientCd(String clientCd) {
              this.clientCd = clientCd;
       }

       public String getClientName() {
              return clientName;
       }

       public void setClientName(String clientName) {
              this.clientName = clientName;
       }

       public String getProjectCode() {
              return projectCode;
       }

       public void setProjectCode(String projectCode) {
              this.projectCode = projectCode;
       }

       public String getProjectNm() {
              return projectNm;
       }

       public void setProjectNm(String projectNm) {
              this.projectNm = projectNm;
       }

       public BigDecimal getAmount() {
              return amount;
       }

       public void setAmount(BigDecimal amount) {
              this.amount = amount;
       }

       public Integer getApplyDeadline() {
              return applyDeadline;
       }

       public void setApplyDeadline(Integer applyDeadline) {
              this.applyDeadline = applyDeadline;
       }

       public String getApplyDeadlineUnit() {
              return applyDeadlineUnit;
       }

       public void setApplyDeadlineUnit(String applyDeadlineUnit) {
              this.applyDeadlineUnit = applyDeadlineUnit;
       }

       public BigDecimal getApplyRate() {
              return applyRate;
       }

       public void setApplyRate(BigDecimal applyRate) {
              this.applyRate = applyRate;
       }

       public String getApplyRateUnit() {
              return applyRateUnit;
       }

       public void setApplyRateUnit(String applyRateUnit) {
              this.applyRateUnit = applyRateUnit;
       }

       public String getBusinessTypeCd() {
              return businessTypeCd;
       }

       public void setBusinessTypeCd(String businessTypeCd) {
              this.businessTypeCd = businessTypeCd;
       }

       public String getBusinessTypeNm() {
              return businessTypeNm;
       }

       public void setBusinessTypeNm(String businessTypeNm) {
              this.businessTypeNm = businessTypeNm;
       }

       public String getSearchKey() {
              return searchKey;
       }

       public void setSearchKey(String searchKey) {
              this.searchKey = searchKey;
       }

       public String getCapitalUseFor() {
              return capitalUseFor;
       }

       public void setCapitalUseFor(String capitalUseFor) {
              this.capitalUseFor = capitalUseFor;
       }

       public String getQuasiGuarMeasures() {
              return quasiGuarMeasures;
       }

       public void setQuasiGuarMeasures(String quasiGuarMeasures) {
              this.quasiGuarMeasures = quasiGuarMeasures;
       }

       public String getProjectSource() {
              return projectSource;
       }

       public void setProjectSource(String projectSource) {
              this.projectSource = projectSource;
       }


       public String getRemark() {
              return remark;
       }

       public void setRemark(String remark) {
              this.remark = remark;
       }

       public String getSpecificType() {
              return specificType;
       }

       public void setSpecificType(String specificType) {
              this.specificType = specificType;
       }

       public String getSpecificCd() {
              return specificCd;
       }

       public void setSpecificCd(String specificCd) {
              this.specificCd = specificCd;
       }

       public Long getApplyDateTime() {
              return applyDateTime;
       }

       public void setApplyDateTime(Long applyDateTime) {
              this.applyDateTime = applyDateTime;
       }

       public String getAcceptEmpCd() {
              return acceptEmpCd;
       }

       public void setAcceptEmpCd(String acceptEmpCd) {
              this.acceptEmpCd = acceptEmpCd;
       }

       public String getAcceptEmpCdId() {
              return acceptEmpCdId;
       }

       public void setAcceptEmpCdId(String acceptEmpCdId) {
              this.acceptEmpCdId = acceptEmpCdId;
       }

       public String getAcceptEmpNm() {
              return acceptEmpNm;
       }

       public void setAcceptEmpNm(String acceptEmpNm) {
              this.acceptEmpNm = acceptEmpNm;
       }

       public String getCreditId() {
              return creditId;
       }

       public void setCreditId(String creditId) {
              this.creditId = creditId;
       }

       public BigDecimal getCurrentAmount() {
              return currentAmount;
       }

       public void setCurrentAmount(BigDecimal currentAmount) {
              this.currentAmount = currentAmount;
       }

       public Integer getCurrentDeadline() {
              return currentDeadline;
       }

       public void setCurrentDeadline(Integer currentDeadline) {
              this.currentDeadline = currentDeadline;
       }

       public String getCurrentDeadlineUnit() {
              return currentDeadlineUnit;
       }

       public void setCurrentDeadlineUnit(String currentDeadlineUnit) {
              this.currentDeadlineUnit = currentDeadlineUnit;
       }

       public BigDecimal getCurrentRate() {
              return currentRate;
       }

       public void setCurrentRate(BigDecimal currentRate) {
              this.currentRate = currentRate;
       }

       public String getBusiProperty() {
              return busiProperty;
       }

       public void setBusiProperty(String busiProperty) {
              this.busiProperty = busiProperty;
       }

       public String getCompanyId() {
              return companyId;
       }

       public void setCompanyId(String companyId) {
              this.companyId = companyId;
       }

       public String getLoanOrganizationId() {
              return loanOrganizationId;
       }

       public void setLoanOrganizationId(String loanOrganizationId) {
              this.loanOrganizationId = loanOrganizationId;
       }

       public String getOperateOrgId() {
              return operateOrgId;
       }

       public void setOperateOrgId(String operateOrgId) {
              this.operateOrgId = operateOrgId;
       }

       public BigDecimal getCompFreeAmount() {
              return compFreeAmount;
       }

       public void setCompFreeAmount(BigDecimal compFreeAmount) {
              this.compFreeAmount = compFreeAmount;
       }

       public BigDecimal getContractAmount() {
              return contractAmount;
       }

       public void setContractAmount(BigDecimal contractAmount) {
              this.contractAmount = contractAmount;
       }

       public Long getContractEDate() {
              return contractEDate;
       }

       public void setContractEDate(Long contractEDate) {
              this.contractEDate = contractEDate;
       }

       public Long getContractSDate() {
              return contractSDate;
       }

       public void setContractSDate(Long contractSDate) {
              this.contractSDate = contractSDate;
       }

       public BigDecimal getDestAmount() {
              return destAmount;
       }

       public void setDestAmount(BigDecimal destAmount) {
              this.destAmount = destAmount;
       }

       public BigDecimal getInsuranceBalance() {
              return insuranceBalance;
       }

       public void setInsuranceBalance(BigDecimal insuranceBalance) {
              this.insuranceBalance = insuranceBalance;
       }

       public Integer getIsFormalApply() {
              return isFormalApply;
       }

       public void setIsFormalApply(Integer isFormalApply) {
              this.isFormalApply = isFormalApply;
       }

       public Integer getIsIntentApply() {
              return isIntentApply;
       }

       public void setIsIntentApply(Integer isIntentApply) {
              this.isIntentApply = isIntentApply;
       }

       public BigDecimal getLoanTotalAmount() {
              return loanTotalAmount;
       }

       public void setLoanTotalAmount(BigDecimal loanTotalAmount) {
              this.loanTotalAmount = loanTotalAmount;
       }

       public BigDecimal getNormalFreeAmount() {
              return normalFreeAmount;
       }

       public void setNormalFreeAmount(BigDecimal normalFreeAmount) {
              this.normalFreeAmount = normalFreeAmount;
       }

       public BigDecimal getRecoverAmount() {
              return recoverAmount;
       }

       public void setRecoverAmount(BigDecimal recoverAmount) {
              this.recoverAmount = recoverAmount;
       }

       public BigDecimal getReviewAmount() {
              return reviewAmount;
       }

       public void setReviewAmount(BigDecimal reviewAmount) {
              this.reviewAmount = reviewAmount;
       }

       public Long getReviewDeadline() {
              return reviewDeadline;
       }

       public void setReviewDeadline(Long reviewDeadline) {
              this.reviewDeadline = reviewDeadline;
       }

       public String getReviewDeadlineUnit() {
              return reviewDeadlineUnit;
       }

       public void setReviewDeadlineUnit(String reviewDeadlineUnit) {
              this.reviewDeadlineUnit = reviewDeadlineUnit;
       }

       public String getProjectLevel() {
              return projectLevel;
       }

       public void setProjectLevel(String projectLevel) {
              this.projectLevel = projectLevel;
       }

       public Long getLoanEndDate() {
              return loanEndDate;
       }

       public void setLoanEndDate(Long loanEndDate) {
              this.loanEndDate = loanEndDate;
       }

       public Long getLoanStartDate() {
              return loanStartDate;
       }

       public void setLoanStartDate(Long loanStartDate) {
              this.loanStartDate = loanStartDate;
       }

       public String getBusinessNature() {
              return businessNature;
       }

       public void setBusinessNature(String businessNature) {
              this.businessNature = businessNature;
       }

       public Integer getInterestType() {
              return interestType;
       }

       public void setInterestType(Integer interestType) {
              this.interestType = interestType;
       }

       public Integer getIsTailType() {
              return isTailType;
       }

       public void setIsTailType(Integer isTailType) {
              this.isTailType = isTailType;
       }

       public String getRepayMethod() {
              return repayMethod;
       }

       public void setRepayMethod(String repayMethod) {
              this.repayMethod = repayMethod;
       }

       public Integer getRepaymentDt() {
              return repaymentDt;
       }

       public void setRepaymentDt(Integer repaymentDt) {
              this.repaymentDt = repaymentDt;
       }

       public String getSelectFixRepaymentDt() {
              return selectFixRepaymentDt;
       }

       public void setSelectFixRepaymentDt(String selectFixRepaymentDt) {
              this.selectFixRepaymentDt = selectFixRepaymentDt;
       }

       public String getDecisionsChangeId() {
              return decisionsChangeId;
       }

       public void setDecisionsChangeId(String decisionsChangeId) {
              this.decisionsChangeId = decisionsChangeId;
       }

       public Integer getHasDecisionsChange() {
              return hasDecisionsChange;
       }

       public void setHasDecisionsChange(Integer hasDecisionsChange) {
              this.hasDecisionsChange = hasDecisionsChange;
       }

       public Long getInInsuranceDateTime() {
              return inInsuranceDateTime;
       }

       public void setInInsuranceDateTime(Long inInsuranceDateTime) {
              this.inInsuranceDateTime = inInsuranceDateTime;
       }

       public BigDecimal getReviewRate() {
              return reviewRate;
       }

       public void setReviewRate(BigDecimal reviewRate) {
              this.reviewRate = reviewRate;
       }

       public BigDecimal getFormalApplyAmount() {
              return formalApplyAmount;
       }

       public void setFormalApplyAmount(BigDecimal formalApplyAmount) {
              this.formalApplyAmount = formalApplyAmount;
       }

       public BigDecimal getIntentApplyAmount() {
              return intentApplyAmount;
       }

       public void setIntentApplyAmount(BigDecimal intentApplyAmount) {
              this.intentApplyAmount = intentApplyAmount;
       }

       public Long getAccrThroughDateTime() {
              return accrThroughDateTime;
       }

       public void setAccrThroughDateTime(Long accrThroughDateTime) {
              this.accrThroughDateTime = accrThroughDateTime;
       }

       public String getBusiCd() {
              return busiCd;
       }

       public void setBusiCd(String busiCd) {
              this.busiCd = busiCd;
       }

       public Integer getStatus() {
              return status;
       }

       public void setStatus(Integer status) {
              this.status = status;
       }

       public String getStageCd() {
              return stageCd;
       }

       public void setStageCd(String stageCd) {
              this.stageCd = stageCd;
       }

       public Long getEndTime() {
              return endTime;
       }

       public void setEndTime(Long endTime) {
              this.endTime = endTime;
       }

       public Integer getStoreStatus() {
              return storeStatus;
       }

       public void setStoreStatus(Integer storeStatus) {
              this.storeStatus = storeStatus;
       }

       public Long getStoreInTime() {
              return storeInTime;
       }

       public void setStoreInTime(Long storeInTime) {
              this.storeInTime = storeInTime;
       }

       public Long getLastStoreOutTime() {
              return lastStoreOutTime;
       }

       public void setLastStoreOutTime(Long lastStoreOutTime) {
              this.lastStoreOutTime = lastStoreOutTime;
       }

       public Long getCleanStoreTime() {
              return cleanStoreTime;
       }

       public void setCleanStoreTime(Long cleanStoreTime) {
              this.cleanStoreTime = cleanStoreTime;
       }

       public String getBelongOrgId() {
              return belongOrgId;
       }

       public void setBelongOrgId(String belongOrgId) {
              this.belongOrgId = belongOrgId;
       }

       public String getBelongOrgCd() {
              return belongOrgCd;
       }

       public void setBelongOrgCd(String belongOrgCd) {
              this.belongOrgCd = belongOrgCd;
       }

       public String getBelongOrgNm() {
              return belongOrgNm;
       }

       public void setBelongOrgNm(String belongOrgNm) {
              this.belongOrgNm = belongOrgNm;
       }

       public String getClientVersion() {
              return clientVersion;
       }

       public void setClientVersion(String clientVersion) {
              this.clientVersion = clientVersion;
       }

       public String getHandlingDepartmentCd() {
              return handlingDepartmentCd;
       }

       public void setHandlingDepartmentCd(String handlingDepartmentCd) {
              this.handlingDepartmentCd = handlingDepartmentCd;
       }

       public String getHandlingDepartmentNm() {
              return handlingDepartmentNm;
       }

       public void setHandlingDepartmentNm(String handlingDepartmentNm) {
              this.handlingDepartmentNm = handlingDepartmentNm;
       }
}
